package com.frossini.proyectologin;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import com.frossini.proyectologin.adapter.TareasAdapter;
import com.frossini.proyectologin.model.Cliente;
import com.frossini.proyectologin.model.ExtraKeys;
import com.frossini.proyectologin.model.Tarea;
import com.frossini.proyectologin.util.TareaSerializer;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.transition.Visibility;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.AdapterContextMenuInfo;

public class DetalleTareaActivity extends Activity
{
	private TareasAdapter adapter;
	private SimpleDateFormat sdf = new SimpleDateFormat( "dd/MM/yyyy" );
	Cliente ocliente = new Cliente();
	Tarea otarea = new Tarea();
	
	EditText detalle_tarea ;
	String  cliente ;
	EditText proyecto;
	EditText ecliente ;
	EditText realizadores;
	EditText fecha_tarea ;
	EditText fecha_final;
	EditText etipotarea ; 
	EditText eseguimiento ; 
	EditText id_tarea ;
	String mtipo ; 
	Button guardaredicion ;
	private SimpleDateFormat df = new SimpleDateFormat("EEEE dd 'de' MMM 'de' yyyy '-' hh:mm");
	
	@Override
	protected void onCreate(Bundle savedInstanceState) 
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_detalle_tarea);
		
		otarea = (Tarea) getIntent().getSerializableExtra(ExtraKeys.S_TAREA);
		mtipo  =  (String) getIntent().getSerializableExtra(ExtraKeys.EDITA_TAREA );
		
		final EditText edtdescripcion = (EditText) findViewById(R.id.etdescripciontarea);
		final EditText edtfecha = (EditText) findViewById(R.id.edtfechatarea);
		final EditText edtfecha_fin = (EditText) findViewById(R.id.edtfechafinal);
		final EditText edtrealizadores = (EditText)findViewById(R.id.edtrealizadores);
		final EditText edtproyecto = (EditText)findViewById(R.id.edtproyecto);
		final EditText edtcliente = (EditText)findViewById(R.id.edtcliente);
		final EditText edttipotarea = (EditText)findViewById(R.id.edttipotarea);
		final EditText idtarea = (EditText)findViewById(R.id.codigotarea);
		edtfecha.setText(sdf.format(new Date() ));
		final EditText seguimiento = (EditText)findViewById(R.id.edtseguimiento);
		Calendar hoy = Calendar.getInstance();
		hoy.add(Calendar.DATE, ExtraKeys.DIAS_VTO);
		edtfecha_fin.setText(sdf.format(hoy.getTime()));
		
	 	mostrarDatos();
		guardaredicion.setOnClickListener(new OnClickListener() 
		{
			@Override
			public void onClick(View v)
			{
				int nidtarea = Integer.parseInt(idtarea.getText().toString());
				guardarEdicion(edtdescripcion.getText().toString(), edtrealizadores.getText().toString(), edtproyecto.getText().toString(), edtcliente.getText().toString(), 
						edtfecha_fin.getText().toString(),edtfecha.getText().toString(), edttipotarea.getText().toString(),
						nidtarea,seguimiento.getText().toString());
				//guardarEdicion(edtdescripcion.getText().toString(), edtrealizadores.getText().toString(), edtproyecto.getText().toString(), edtcliente.getText().toString(), edtfecha_fin.getText().toString(),edtfecha.getText().toString());
				
			}

	
		});
	}
	
	public void guardarEdicion(String xdescripcion, String xrealizadores,String xproyecto, String xcliente,
			String xfecha_fin,String xfecha_tarea,String xtipotarea, int xidtarea, String xseguimiento)
	{
		if (xdescripcion != null && xdescripcion != "") 
		{
			///otarea = new Tarea();
			ocliente = new Cliente();
			ocliente.setNombre(xcliente) ;
			//otarea.setFechaTarea(new Date());
			otarea.setFechaTareaFinal(new Date());
			otarea.setDescripcion(xdescripcion);
			otarea.setRealizadores(xrealizadores);
			otarea.setProyecto(xproyecto);
			otarea.setCliente(ocliente);
			otarea.setTipoTarea(xtipotarea);
			otarea.setIdTarea(xidtarea);
			otarea.setSeguimiento(xseguimiento);
			try {
		 
				Date date_fin = sdf.parse(xfecha_fin);
				otarea.setFechaTareaFinal(date_fin);
				Date date = sdf.parse(xfecha_tarea);
				//otarea.setFechaTarea(date);
				} catch (ParseException e) {
					e.printStackTrace();
				}
			
			TareaSerializer.EditarTarea(this, otarea); // guarda el registro
			setResult(RESULT_OK);
			finish(); // cierra esta activity.
		}
	}
	
	private void mostrarDatos()
	{
		//tdetalle_tarea = (TextView) findViewById(R.id.etdescripciontarea);
		//tdetalle_tarea.setText(otarea.getDescripcion());
		guardaredicion = (Button) findViewById(R.id.btguardaredicion);
		cliente = findViewById(R.id.edtcliente).toString();
		detalle_tarea = (EditText) findViewById(R.id.etdescripciontarea);
		proyecto = (EditText) findViewById(R.id.edtproyecto);
		ecliente = (EditText) findViewById(R.id.edtcliente);
		realizadores = (EditText) findViewById(R.id.edtrealizadores);
		fecha_tarea = (EditText) findViewById(R.id.edtfechatarea);
		fecha_final = (EditText) findViewById(R.id.edtfechafinal);
		etipotarea = (EditText) findViewById(R.id.edttipotarea);
		id_tarea = (EditText) findViewById(R.id.codigotarea);
		eseguimiento = (EditText) findViewById(R.id.edtseguimiento);
		//otarea = (Tarea) getIntent().getSerializableExtra(ExtraKeys.S_TAREA);
		Toast.makeText(this, otarea.getDescripcion(), Toast.LENGTH_SHORT).show();
		
		ocliente = new Cliente();
		ocliente = otarea.getCliente();
	    cliente = ocliente.getNombre();
		ecliente.setText(cliente);
		detalle_tarea.setText(otarea.getDescripcion());
		proyecto.setText(otarea.getProyecto());
		realizadores.setText(otarea.getRealizadores());
		fecha_tarea.setText(sdf.format(otarea.getFechaTarea()));
		fecha_final.setText(sdf.format(otarea.getFechaTareaFinal()));
		etipotarea.setText(otarea.getTipoTarea());
		eseguimiento.setText(otarea.getSeguimiento());
		id_tarea.setText(String.valueOf(otarea.getIdTarea()));
	
		
		
		if (mtipo.equals("SI")) 
		{
			ecliente.setEnabled(true);
			detalle_tarea.setEnabled(true);
			proyecto.setEnabled(true);
			realizadores.setEnabled(true);
			fecha_tarea.setEnabled(true);
			fecha_final.setEnabled(true);
		    guardaredicion.setEnabled(true);
		    etipotarea.setEnabled(true);
		    id_tarea.setEnabled(true);
		    eseguimiento.setEnabled(true);
		} else
		{
			ecliente.setEnabled(false);
			detalle_tarea.setEnabled(false);
			proyecto.setEnabled(false);
			realizadores.setEnabled(false);
			fecha_tarea.setEnabled(false);
			fecha_final.setEnabled(false);
		    guardaredicion.setVisibility(View.INVISIBLE);
		    etipotarea.setEnabled(false);
		    id_tarea.setEnabled(false);
		    eseguimiento.setEnabled(false);
		}
		
		
	}

	@Override
	public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
		getMenuInflater().inflate(R.menu.detalle_tarea, menu);
		
	}
	
	@Override
	public boolean onContextItemSelected(MenuItem item) 
	{
		AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
		switch (item.getItemId())
		{
		
		case R.id.action_eliminar:
			//AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
			eliminar(info.position);
			return true;
		case R.id.action_enviarmail:
			//AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
			enviarmail(info.position);
			return true;
		case R.id.action_editar_tarea:
			//AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
			editar_tarea(info.position);
			return true;
		default:
			return super.onContextItemSelected(item);
		}
		
	}
	
	private void eliminar (int position) {
		/*Tarea tarea = adapter.getItem(position);
		adapter.remove(tarea);
		TareaSerializer.delete(this, tarea);
		actualizarCantidadTareas();*/
	}
	private void enviarmail (int position) {
		/*Tarea tarea = adapter.getItem(position);
		
		enviarEmailregistro(tarea);*/
	}
	private void editar_tarea (int position) 
	{
		/*Tarea mtarea = adapter.getItem(position);
		Tarea oldtarea = adapter.getItem(position);
				adapter.remove(oldtarea);
				TareaSerializer.delete(this, oldtarea);
		TareaSerializer.add(this, mtarea); // guarda el registro
		setResult(RESULT_OK);
		finish(); // cierra esta activity.
*/		
	}
	
}
